package com.liang.pcc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liang.pcc.domain.AuthUser;
import com.liang.pcc.dto.req.UserLoginReq;
import com.liang.pcc.dto.req.UserRegisterReq;
import com.liang.pcc.dto.req.UserUpdateReq;
import com.liang.pcc.dto.resp.UserLoginResp;

/**
 * 系统用户表Service
 */
public interface AuthUserService extends IService<AuthUser> {

    /**
     * 用户注册
     *
     * @param param 用户注册参数
     */
    void register(UserRegisterReq param);

    /**
     * 用户登录
     *
     * @param param 用户登录参数
     * @return 用户 Token 信息
     */
    UserLoginResp login(UserLoginReq param);

    /**
     * 退出登录
     *
     * @param account 账号
     */
    void logout(String account);

    /**
     * 更新用户信息
     *
     * @param param 用户更新参数
     */
    void updateUserInfo(UserUpdateReq param);

    /**
     * 更新用户密码
     *
     * @param param 用户密码参数
     */
    void updatePassword(UserUpdateReq param);

    Long getUserIdByAccount(String account);
}